Digital workspace sharing over one or more display clients and authorization protocols for collaboration systems

ABSTRACT

Systems and techniques are provided for a digital collaborative workspace system. The system includes a server-side network node having a communication module, a processor and a database accessible thereto. The database can store a shared digital workspace. The server-side network node can include logic to send a display identification code (DIC) to a client-side network node such as a display client for display of the DIC. The system can detect an input from a user identifying a shared digital workspace, and a requested DIC. The system can start a collaboration by sending data of the shared digital workspace to the client-side network node.

INCORPORATION BY REFERENCE

This application incorporates by reference, U.S. Pat. No. 9,479,548entitled “COLLABORATION SYSTEM WITH WHITEBOARD ACCESS TO GLOBALCOLLABORATION DATA” and issued on Oct. 25, 2016 (Attorney Docket No.HAWT 1008-1).

BACKGROUND Field

The present invention relates to collaboration systems that enable usersto participate in collaboration meetings from multiple locations. Morespecifically, the present invention relates to using displayidentification codes to start a collaboration between two or morenetwork nodes.

Description of Related Art

Collaboration systems are used in a variety of environments to allowusers to contribute and participate in content generation and review.Users of collaboration systems can join collaboration meetings (orsimply referred to as collaborations) from locations around the world.The collaboration systems authorize users to access shared digitalcontent on their respective computing devices or digital display walls.It can take a considerable amount of useful meeting time to authenticateusers participating in the meeting and then to provide shared digitalcontent to their respective computing devices. For example, someparticipants such as guests or visitors to an office facility, or evenregular users, may not readily have login credentials to access, shareor collaborate using the shared content. It becomes difficult to sharedigital content with such users. Additionally, a challenge arises withrespect to maintaining security of shared digital content across users.Another challenge in collaboration systems is efficient utilization andscheduling of digital display resources such as digital display walls,desktop and laptop computers, tablets, and mobile computing devices suchas mobile phones. For example, an unscheduled user who is not aregistered participant in a scheduled meeting may access and use adigital display wall in a meeting room that was actually scheduled for ameeting. This can waste useful meeting time as users of the scheduledmeeting have to request the unscheduled user of the digital display walland meeting room to log out and remove their content from the digitaldisplay wall in the meeting room.

It is desirable to provide a system that can more effectively andautomatically manage user authorization, content sharing, and access todigital display walls in a collaboration system so that shared digitalcontent (e.g., a shared digital workspace) is efficiently distributed tomeeting participants and only participants of a meeting can accessdigital display walls during a scheduled meeting.

SUMMARY

A system and method for operating a system are provided for sharingdigital content in a collaboration meeting (or a collaboration).Technology is provided to authenticate users and distribute digitalcontent to one or more locations across the world where participants ofa collaboration can create and review content. In one aspect, displayidentification codes can be associated with digital display devices suchas digital display walls, desktop or laptop computers, tablets or mobilephones. The display identification codes can be used to send content tohardware devices. In another aspect, the mobile phone numbers of userscan be associated to display identification codes thus allowing sendingof digital content to digital display clients using mobile phonenumbers.

A first implementation of the system (also referred to as digitalcollaborative workspace system) includes a network node having acommunication module, a processor, and a database accessible thereto.The database stores a shared digital workspace. The network nodeincludes logic to send (i) a first display identification code (DIC) toa first network node for display of the first DIC and (ii) a second DICto a second network node for display of the second DIC. The systemincludes logic to detect an input from a user, via the communicationmodule, identifying (i) the shared digital workspace, (ii) a firstrequested DIC and (iii) a second requested DIC. The system starts acollaboration by sending data of the shared digital workspace to boththe first network node and the second network node.

A second implementation of the system (also referred to as digitalcollaborative workspace system) includes a network node having acommunication module, a processor, and a database accessible thereto.The database can store a shared digital workspace. The system includes asmart dongle connected to a first network node and communicablyconnected to the communication module of the network node. The smartdongle includes logic to provide a first display identification code(DIC) to first network node for display of the first DIC. The networknode further includes logic, executable by the processor to send asecond DIC to a second network node for display of the second DIC. Thesystem can detect an input from a user, via the communication module,identifying (i) the shared digital workspace, (ii) a first requested DICand (iii) a second requested DIC. The system can start a collaborationby initiating a sending of data of the shared digital workspace to thefirst network node via the smart dongle and sending the data of theshared digital workspace to the second network node.

Methods and computer program products which can be executed by computersystems are also described herein.

Other aspects and advantages of the present invention can be seen onreview of the drawings, the detailed description and the claims, whichfollow.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be described with respect to specific embodimentsthereof, and reference will be made to the drawings, which are not drawnto scale, and in which:

FIGS. 1A and 1B (collectively FIG. 1) illustrate example aspects of adigital collaborative workspace system also referred to as digitaldisplay collaboration system or a collaboration system.

FIG. 2 illustrates a collaboration system including a plurality ofgeographically distributed display walls to which collaboration data canbe delivered for use by authorized users.

FIGS. 3A and 3B (collectively FIG. 3) illustrate an example of shareddigital workspaces sent to multiple display clients using displayidentification codes.

FIGS. 4A and 4B (collectively FIG. 4) illustrate an example of shareddigital workspaces sent to multiple display clients using mobile phonenumbers.

FIGS. 5A and 5B (collectively FIG. 5) illustrate an example of sharingdigital workspace content from a mobile device to a digital displaywall.

FIG. 6 presents server-side process steps for authorizing sharing ofworkspace to digital displays upon receiving display identificationcodes from a user.

FIG. 7 presents server-side process steps for authorizing sharing ofworkspace to digital displays upon receiving mobile phone numbers from auser.

FIG. 8 presents server-side process steps for assigning displayidentification codes to digital displays and disabling displayidentification code sent to a display during a collaboration meeting.

FIGS. 9A, 9B, 9C, 9D, 9E, 9F, 9G and 9H (collectively FIG. 9) aresimplified diagrams of data structures for parts of the workspace anddisplay mappings data.

FIG. 10 is a simplified functional architecture for a distributedcollaboration system.

FIG. 11 is a simplified block diagram of the computer system 110, e.g. aclient device computer system (FIG. 1B).

FIG. 12 is a simplified functional block diagram of a client-sidenetwork node and display.

FIG. 13 is a flowchart illustrating operation of client-side networknode like that of FIG. 12.

DETAILED DESCRIPTION

A detailed description of embodiments of the present invention isprovided with reference to the FIGS. 1-13.

The following description is presented to enable any person skilled inthe art to make and use the invention and is provided in the context ofa particular application and its requirements. Various modifications tothe disclosed embodiments will be readily apparent to those skilled inthe art, and the general principles defined herein may be applied toother embodiments and applications without departing from the spirit andscope of the present invention. Thus, the present invention is notintended to be limited to the embodiments shown, but is to be accordedthe widest scope consistent with the principles and features disclosedherein.

We describe a collaboration environment in which users can participatein an interactive collaboration from the same meeting room or fromlocations across the world. A participant can join and participate inthe collaboration using large format digital displays, desktop andlaptop computers, tablets, or mobile computing devices. Following thedescription of this example collaboration environment, we explain howthe technology disclosed addresses the problem of authenticating a userby (i) providing access to and a download of some or all of a shareddigital workspace (also referred to as a workspace or a digital asset)by one or more hardware devices such as digital display clients or othercomputing devices and (ii) providing a user with the ability to accessand/or share a workspace and/or participate in a collaboration on theirown device (e.g., a handheld tablet) while, for example, thecollaboration is active on other devices as well (e.g., a display wallin a meeting room). We present details of the technology disclosed toauthenticate a user to access the workspace, authorize the authenticateduser to download some or all of the workspace to one or more hardwaredevices and provide the user with access to a collaboration (e.g., ashared workspace) currently being performed on other devices. We thenpresent description of various elements of the technology disclosed toenable the reader to understand features of these elements. The detailsof the technology disclosed are illustrated using examples ofcollaboration workspaces.

FIG. 1A illustrates example aspects of a digital collaborative workspacesystem also referred to as digital collaboration system or acollaboration environment. In the example, a plurality of users 101 a-i(collectively 101), may desire to collaborate with each other in thecreation of complex images, music, video, documents, and/or other media,all generally designated in FIG. 1A as 103 a-d (collectively 103). Theusers in the illustrated example use a variety of devices configured aselectronic network nodes, in order to collaborate with each other, forexample a tablet 102 a, a personal computer (PC) 102 b, a mobilecomputing device (e.g., a mobile phone) 102 f and many large formatdisplays 102 c, 102 d, 102 e (collectively devices 102). The electronicnetwork nodes can be positioned in locations around the world. In theillustrated example, the large format displays 102 c, 102 d, and 102 ewhich are sometimes referred to herein as a “wall”, accommodate morethan one user, (e.g. users 101 c and 101 d, users 101 e and 101 f, andusers 101 g and 101 h). The user devices, which are referred to asclient-side network nodes, have displays on which a displayable area isallocated for displaying events in a workspace. The displayable area fora given user may comprise the entire screen of the display, a subset ofthe screen, a window to be displayed on the screen and so on, such thateach has a limited area or extent compared to the virtually unlimitedextent of the workspace.

The collaboration environment can also include scheduling systems 105connected through the network. Users can schedule collaboration meetingsusing a meeting scheduling system such as Microsoft Outlook™, GoogleCalendar™ etc. Using a meeting scheduling system, a meeting owner (auser who sets up the meeting) can send invites to other users toparticipate in a collaboration meeting. The meeting can also identifyone or more meeting rooms for the collaboration and assign otherresources for the meeting such as one or more digital displays locatedin the meeting rooms. The technology disclosed can also use conferencingsystems such as Cisco WebEx™ Microsoft Skype™ to allow voice and videocommunication between the meeting participants. When the meeting starts,the meeting participants can join the collaboration meeting using thedevices 102 a, 102 b, 102 c, 102 d, 102 e, or 102 f.

The large format displays 102 c, 102 d, 102 e sometimes referred toherein as “walls,” are controlled by respective client-side networknodes, which in turn are in network communication with a centralcollaboration server 107 configured as a server-side network node. Theserver-side network node has access to a database 108 storing displaymappings and a database 109 storing spatial event stack for one or moreworkspaces. The display mappings database 108 stores displayidentification codes (DICs) mapped to digital displays or walls. Adisplay identification code can be an alpha-numeric string of apre-defined length. A DIC is assigned to one or more digital displaysand can be displayed on respective assigned digital displays.

As used herein, a network node is an active electronic device that isattached to a network, and is capable of sending, receiving, orforwarding information over a communications channel. Examples ofelectronic devices which can be deployed as network nodes, include allvarieties of computers, work stations, laptop and desktop computers,hand held computers and smart phones. The digital displays 102 c and 102d are also examples of network nodes. Throughout this document digitaldisplays, display clients, servers, client devices, etc., can simply bereferred to as “network nodes”, “client-side network nodes” and/or“server-side network nodes.” As used herein, the term “database” doesnot necessarily imply any unity of structure. For example, two or moreseparate databases, when considered together, still constitute a“database” as that term is used herein.

The digital collaborative workspace system of FIG. 1 can include digitaldisplay walls, such as for example digital display wall 102 d, that donot include a built-in computer processor and/or networking capability.An external computing device 111 (also referred to as a smart dongle, ora dongle) such as Intel™ Compute Stick (Core m3) or Google™ Chromecastcan be connected to the digital display 102 d through a port such as anHDMI port, a USB port, etc. The smart dongle 111 is connected to thedigital display client 102 d and is communicably connected to thecommunication module of the collaboration server 107. Thus, the digitaldisplay 102 d is also an example of a network node when the smart dongle111 is connected to it. The collaboration server 107 includes logic toidentify the display client 102 d linked to the server via the smartdongle. The system can include more than one display clients with smartdongles attached to them. The smart dongle 111 can include logic toprovide a display identification code (DIC) to the display client fordisplay of the DIC. In one embodiment, the collaboration server sends adisplay identification code (DIC) to the smart dongle which then sendsthe received DIC to the display client for display. In anotherembodiment, the smart dongle generates the DIC and provides thegenerated DIC to the display client for display. In yet anotherembodiment, the smart dongle generates the DIC in response to receivingan indication from the collaboration server to the generate the DIC.

The collaboration server can detect an input from a user via thecommunication module to identify a shared digital workspace (such as aworkspace) for which the user is authorized to access. The collaborationserver can also detect the input from a user identifying one or morerequested display identification codes (DICs). The collaboration serverthen determines if the requested display identification code (DIC) inputby the user matches to the DIC sent to the display client. In responseto the match, the collaboration server starts a collaboration byproviding access to the display client to shared digital workspace tovia the smart dongle 111.

The collaboration workspace technology described above can be used forcollaboration in a wide variety of environments. For example, thetechnology can be used to conduct collaboration meetings in anenterprise environment in which employees of an organization or othergroups participate from one or more office locations or remote locationsaround the world, simultaneously and at different times, by interactingwith a collaboration workspace in the same or different virtuallocations. Also, the collaboration technology can be used in aneducational environment such as to deliver a lecture in one or morelecture theaters and remote locations. The teacher and students canconnect to the collaboration meeting using their respective computingdevices from one or more lecture theaters or remote locations around theworld. The participants in a collaboration meeting can perform a varietyof interactive tasks in the workspace. For example, a user can touch adocument in the workspace to open that document, annotate on thedocument that is open in the workspace, or share the document with otherusers, etc.

It can be imaged that a collaboration can include many participants fromlocations around the world, therefore, it can take considerable amountof time at the start of the meeting to authenticate all participants andshare the workspace with them. In prior art systems, this can include atwo-step process. At a first step, a participant enters her logincredentials such as a personal identification number (PIN), or even aDIC, to get access to the collaboration server (i.e., the user isauthenticated). The second step includes allowing the authenticatedparticipant to download some or all of the workspace to a hardwaredevice such as digital display wall, computer, or a mobile computingdevice by using an identifier that identifies the hardware device. Thus,prior art systems can require prior authorization of hardware devices toshare workspaces. This can limit the ability of the organizer or ownerof the collaboration meeting to share content with participants who havenot been authenticated by the collaboration server. Such users caninclude guests attending a meeting or users who have not been sent aninvitation prior to the meeting and are attempting to join thecollaboration meeting as the meeting starts. The technology disclosedallows a user who is authorized to access the workspace to share theworkspace with hardware devices that may not have authorization toaccess the workspace.

In one embodiment, the technology disclosed can map mobile phone numbersto display identification codes of hardware devices. The authorized usercan download the workspace (or a portion of the workspace) on hardwaredevices by using a mobile phone number to identify the hardware deviceinstead of using a display identification code or any other identifierfor hardware device. The technology disclosed allows downloading ofworkspace to one or more hardware devices by allowing the user to enterthe display identification codes of hardware devices simultaneously,thus decreasing the time required to start the meeting by sharing theworkspace with meeting participants in one step.

In addition to allowing efficient distribution of workspaces to hardwaredevices, the technology disclosed can use information collected frommeeting scheduling systems to only allow the users who are participantsof a meeting to join the collaboration meeting and use hardwareresources. For example, when an authenticated user attempts to downloada workspace to a digital display wall in a meeting room, thecollaboration server 107 allows the user to share or download theworkspace to the digital display wall if the user is participant of thecurrent scheduled meeting in the room in which the digital wall isplaced. If a user is attempting to download the workspace to the digitaldisplay wall before the meeting start time, the system can deny thisrequest and display a message to the user with the meeting time at whichshe can start using the hardware devices in the meeting room.Additionally, when a meeting is about the end, the system can display amessage to the meeting organizer that the meeting is about to end.Therefore, the technology disclosed enables efficient utilization ofhardware devices, such as display clients, during the meeting time andprovides an efficient one-step process to share or download workspaces(or shared digital workspace) to hardware devices.

An example of a collaboration workspace including a “Spatial Event Map”data structure is referred to for the purposes of description of thetechnology. The spatial event map contains information to define objectsand events in a workspace. The spatial event map can be used to generatean event log or a log of entries which identifies an event comprisingdata specifying virtual coordinates of location within the workspace atwhich an interaction with the workspace is detected, data specifying atype of interaction, a graphical object associated with the interaction,and a time of the interaction. It is useful to consider the technologyfrom the point of view of space, events, maps of events in the space,and access to the space by multiple users, including multiplesimultaneous users. We now present description of these elements.

Space: In order to support an unlimited amount of spatial informationfor a given collaboration, we provide a way to organize a virtual spacetermed the workspace, which can for example be characterized by a2-dimensional Cartesian plane with essentially unlimited extent in oneor both of the dimensions for example, in such a way that new contentcan be added to the space, that content can be arranged and rearrangedin the space, that a user can navigate from one part of the space toanother, and that a user can easily find needed things in the space whenit is needed.

Events: Interactions with the workspace are handled as events. People,via tangible user interface devices such as touchscreens on digitaldisplay walls, desktop and laptop computers, hand held computingdevices, cell phones, and other systems can interact with the workspace.The interaction events (or simply referred to as events) describedherein include the events that are generated as a result of theinteraction of users with the workspace displayed on digital displays(or walls) or computing devices. In the technology disclosed, when auser interacts with a file object displayed on a workspace to open thefile or save the file, the system generates an interaction event whenuser touches the workspace or performs a gesture to interact with theworkspace.

Map: A map of events in the workspace can include the sum total ofdiscrete spatial events. When the persistent spatial events for aworkspace are available, then that workspace can be “mapped” to adisplay or screen that has a displayable area of specific size, and thatidentifies a location or area in the workspace to be displayed in thedisplayable area.

Multi-User Access: One key characteristic is that all users, or multipleusers, who are working on a workspace simultaneously, should be able tosee the interactions of the other users in near-real-time way. Thespatial event map allows users having displays at different physicallocations to experience near-real-time events, including both persistentand ephemeral events, within their respective displayable areas, for allusers on any given workspace.

Interaction events have data that can define or point to a targetgraphical object to be displayed on a physical display, and an action ascreation, modification, movement within the workspace and deletion of atarget graphical object, and metadata associated with them. Metadata caninclude information such as originator, date, time, location in theworkspace, event type, security information. The location in theworkspace can be identified by virtual coordinates of location withinthe workspace at which an interaction with the workspace occurred. Thetechnology disclosed includes the logic to map the local coordinates ofthe interaction at a client device to virtual coordinates in theworkspace. The events metadata can also include the type of interaction.The system includes the logic to define various types of interactions,for example drawing, writing or annotating on the workspace; adding adigital asset such as a webpage, video, or a document; ormoving/arranging objects on the workspace. The event metadata alsoincludes logic to identify digital assets or objects associated with theinteraction event. The event metadata can include the name and/oridentifier of the organization where the system is deployed. The eventmetadata can also include the workspace identifier.

The event metadata can include information about the user who performedthe event such as the location of the user and whether the userperformed the event using a digital display wall, a laptop computer or ahandheld device such as a tablet or a cell phone. Events can also bereferred to as an activity. The system can also determine whether anevent occurred during a multi-user collaboration, i.e. during a meetingin which two or more users participate or a single user collaborationalso referred to as a single user collaboration meeting. The above eventmetadata information can be stored as part of the event metadata (alsoreferred to as log of entries). The system can assign weights to eventsto identify their relative importance. In one embodiment, an event isassigned the same weight across all workspaces in the organization. Inanother embodiment, the weights can be assigned according to theirimportance in a particular department, group or a team within theorganization. In yet another embodiment, the weights can be assignedbased on the time at which the event occurred. For example, a createevent that occurred during a multi user collaboration meeting is given ahigher weight as it represents a higher level of collaboration withinthe team and a create event that occurred in a single user collaborationmeeting is given a lower weight. We now describe a collaborationenvironment which can use the elements described above to enablecollaboration meetings.

Tracking events in a workspace enables the system to not only presentthe spatial events in a workspace in its current state, but to share itwith multiple users on multiple displays, to share relevant externalinformation that may pertain to the content and understand how thespatial data evolves over time. Also, the spatial event map can have areasonable size in terms of the amount of data needed, while alsodefining an unbounded workspace.

There can be several different kinds of events in the system. Events canbe classified as persistent events, also referred to as history events,that are stored permanently, or for a length of time required by thesystem for maintaining a workspace during its useful life. Events can beclassified as ephemeral events that are useful or of interest for only ashort time and shared live among other clients involved in the session.Persistent events may include history events stored in an undo/playbackevent stream, which event stream can be the same as or derived from thespatial event map of a session. Ephemeral events may include events notstored in an undo/playback event stream for the system. A spatial eventmap, or maps, can be used by a collaboration system to track the timesand locations in the workspace in some embodiments of both persistentand ephemeral events on workspaces in the system.

FIG. 1B illustrates the same environment as in FIG. 1A. The applicationrunning at the collaboration server 107 can be hosted using Web serversoftware such as Apache or nginx. It can be hosted for example onvirtual machines running operating systems such as LINUX. The server 107is heuristically illustrated in FIG. 1B as a single computer. However,the server architecture can involve systems of many computers, eachrunning server applications, as is typical for large-scale cloud-basedservices. The server architecture includes a communication module whichcan be configured for various types of communication channels, includingmore than one channel for each client in a collaboration. For example,near-real-time updates across the network, client software cancommunicate with the server communication module via using amessage-based channel, based for example on the Web Socket protocol. Forfile uploads as well as receiving initial large volume workspace data,the client software can communicate with the server communication modulevia HTTP. The server can run a front-end program written for example inJavaScript and HTML using Node.js, support authentication/authorizationbased for example on Oauth, and support coordination among multipledistributed clients. The front-end program can be written using otherprogramming languages and web-application frameworks such as inJavaScript served by Ruby-on-Rails. The server communication module caninclude a message-based communication protocol stack, such as a WebSocket application, that performs the functions of recording useractions in workspace data, and relaying user actions to other clients asapplicable. This system can run on the node.JS platform for example, oron other server technologies designed to handle high-load socketapplications.

The display mappings database 108 can be used to store the displayidentification codes sent to display clients. The display clients caninclude digital display walls or other hardware devices such as desktopor laptop computers, tablets, mobile phones, or other mobile computingdevices. The display mappings database can also store flags for displayidentification codes indicating whether a display identification code isenabled or disabled. In one embodiment, when the workspace is downloadedto a display client, the display identification code sent to the displayclient is disabled to prevent another user from starting a collaborationon this display client. At the end of the collaboration meeting, theworkspace is removed from the display client. The system then adds thedisplay client in the list of available hardware devices and re-enablesthe display identification code to allow another user to start anothercollaboration on this display client. In another embodiment, the systemincludes, so called one-time display identification codes. In suchembodiment, when a display client becomes available, the collaborationserver sends a new display identification code (DIC) to the displayclient for display on the device. The server then updates the displaymappings database 108 by including a record that maps the new DIC to thedisplay client. Details of an example technology for one-timeidentification codes are presented in U.S. Pat. No. 9,479,548, titled,“Collaboration System with Whiteboard Access to Global CollaborationData”, which is incorporated herein by reference as if fully set forthherein.

The technology disclosed can gather the “user” (or a participant) datafrom scheduling systems 105. In one embodiment, the user information isstored as part of the display mappings database 108. In anotherembodiment, the user information can be stored as a separate userdatabase. In such an embodiment, the records in the user data databasecan be linked to the entries in the display mappings database 108 andevent map stack database 109. The user data can include information suchas name of the user, a user identifier, login credentials, mobile phonenumber, etc. The collaboration server can use the credentials toidentify the user in dependence upon the detected input from the userprior to the start of the collaboration. If the credentials entered bythe user match the credentials stored in the user database, the systemallows the user to start the collaboration. Otherwise, the system canrestrict user's access to the shared digital workspace (also referred toas workspace) in dependence upon authorization information associatedwith the identity of the user or with the shared digital workspace. Theuser database can also include users' collaboration history such as theduration for which the user participated in the collaboration, a starttime when the user joined the meeting, an end time when the user leftthe meeting, etc.

The system can also gather users' collaboration data from schedulingsystems 105 and use this information to limit access to display clientsduring scheduled meeting times. The collaboration server can terminatethe collaboration at an expiration of a determined duration of timebeginning from a time of the start of the collaboration. Examples ofscheduling systems 105 include calendar applications such as MicrosoftOutlook™, Google Calendar™, etc. The system can collect meetinginformation from calendar applications indicating a scheduled meetingstart time and stop time of the collaboration. The collaboration serverdetermines a duration of the collaboration from the scheduled meetingstart and stop time. The collaboration server can then set the durationof time to equal the duration of the collaboration. The collaborationserver can prompt the user that the scheduled meeting stop time isapproaching on at least one device of a user. In one embodiment, thecollaboration server can terminate the collaboration at the end of thescheduled meeting time. In another embodiment, the collaboration serverprompts the user to extend the meeting time by moving the meeting stoptime to a later time. The system can also include logic to receive aninput from one or more users to disable access to the shared digitalworkspace by one or more of the network nodes.

The database 109 stores, for example, a digital representation ofworkspace data sets for a spatial event map of each session where theworkspace data set can include or identify events related to objectsdisplayable on a display canvas. A workspace data set can be implementedin the form of a spatial event stack, managed so that at leastpersistent spatial events are added to the stack (push) and removed fromthe stack (pop) in a first-in-last-out pattern during an undo operation.There can be workspace data sets for many different workspaces. A dataset for a given workspace can be configured in a database, or as machinereadable document linked to the workspace. The workspace can haveunlimited or virtually unlimited dimensions. The workspace data includesevent data structures identifying objects displayable by a displayclient in the display area on a display wall, and associates a time anda location in the workspace with the objects identified by the eventdata structures. Each device 102 displays only a portion of the overallworkspace. A display wall has a display area for displaying objects, thedisplay area being mapped to a corresponding area in the workspace thatcorresponds to a region in the workspace centered on, or otherwiselocated with, a user location in the workspace. The mapping of thedisplay area to a corresponding area in the workspace is usable by thedisplay client to identify objects in the workspace data within thedisplay area to be rendered on the display, and to identify objects towhich to link user touch inputs at positions in the display area on thedisplay.

The server 107 and databases 108 and 109 can constitute a server-sidenetwork node, including memory storing a log of events relating tographical targets having locations in a workspace, entries in the log ofevents include a location in the workspace of the graphical target ofthe event, data identifying a type of interaction event, a time of theevent, and a target identifier of the graphical target of the event.Participants or users related data can also be stored in the database108 or in a separate database connected to the server 107. The servercan include logic to establish links to a plurality of activeclient-side network nodes, to receive messages identifying eventsrelating to modification and creation of graphical targets havinglocations in the workspace, to add events to the log in response to saidmessages, and to distribute messages relating to events identified inmessages received from a particular client-side network node to otheractive client-side network nodes.

The logic in the server 107 can comprise an application programinterface, including a specified set of procedures and parameters, bywhich to send messages carrying portions of the log to client-sidenetwork nodes, and to receive messages from client-side network nodescarrying data identifying events relating to graphical targets havinglocations in the workspace. Also, the logic in the server 107 caninclude an application interface including a process to distributeevents received from one client-side network node to other client-sidenetwork nodes.

The events compliant with the API can include a first class of event(history event) to be stored in the log and distributed to otherclient-side network nodes, and a second class of event (ephemeral event)to be distributed to other client-side network nodes but not stored inthe log.

The server 107 can store workspace data sets for a plurality ofworkspaces, and provide the workspace data to the display clientsparticipating in the session. The workspace data is then used by thecomputer systems 110 with appropriate software 112 including displayclient software, to determine images to display on the display, and toassign objects for interaction to locations on the display surface. Theserver 107 can store and maintain a multitude of workspaces, fordifferent collaboration meetings. Each workspace can be associated witha group of users, and configured for access only by authorized users inthe group.

In some alternatives, the server 107 can keep track of a “viewport” foreach device 102, indicating the portion of the canvas viewable on thatdevice, and can provide to each device 102 data needed to render theviewport.

Application software running on the client device responsible forrendering drawing objects, handling user inputs, and communicating withthe server can be based on HTML5 or other markup based procedures, andrun in a browser environment. This allows for easy support of manydifferent client operating system environments.

The user interface data stored in database 109 includes various types ofobjects including graphical constructs, such as image bitmaps, videoobjects, multi-page documents, scalable vector graphics, and the like.The devices 102 are each in communication with the collaboration server107 via a network 104. The network 104 can include all forms ofnetworking components, such as LANs, WANs, routers, switches, WiFicomponents, cellular components, wired and optical components, and theinternet. In one scenario two or more of the users 101 are located inthe same room, and their devices 102 communicate via WiFi with thecollaboration server 107. In another scenario two or more of the users101 are separated from each other by thousands of miles and theirdevices 102 communicate with the collaboration server 107 via theinternet. The walls 102 c, 102 d, 102 e can be multi-touch devices whichnot only display images, but also can sense user gestures provided bytouching the display surfaces with either a stylus or a part of the bodysuch as one or more fingers. In some embodiments, a wall (e.g. 102 c)can distinguish between a touch by one or more fingers (or an entirehand, for example), and a touch by the stylus. In an embodiment, thewall senses touch by emitting infrared light and detecting lightreceived; light reflected from a user's finger has a characteristicwhich the wall distinguishes from ambient received light. The stylusemits its own infrared light in a manner that the wall can distinguishfrom both ambient light and light reflected from a user's finger. Thewall 102 c may, for example, be an array of Model No. MT553UTBLMultiTaction Cells, manufactured by MultiTouch Ltd, Helsinki, Finland,tiled both vertically and horizontally. In order to provide a variety ofexpressive means, the wall 102 c is operated in such a way that itmaintains “state.” That is, it may react to a given input differentlydepending on (among other things) the sequence of inputs. For example,using a toolbar, a user can select any of a number of available brushstyles and colors. Once selected, the wall is in a state in whichsubsequent strokes by the stylus will draw a line using the selectedbrush style and color.

In an illustrative embodiment, a display array can have a displayablearea totaling on the order of 6 feet in height and 30 feet in width,which is wide enough for multiple users to stand at different parts ofthe wall and manipulate it simultaneously. Flexibility of expression onthe wall may be restricted in a multi-user scenario, however, since thewall does not in this embodiment distinguish between fingers ofdifferent users, or styli operated by different users. Thus, if one userplaces the wall into one desired state, then a second user would berestricted to use that same state because the wall does not have a wayto recognize that the second user's input is to be treated differently.

In order to avoid this restriction, the client-side network node candefine “drawing regions” on the wall 102 c. A drawing region, as usedherein, is a region within which at least one aspect of the wall's statecan be changed independently of other regions on the wall. In thepresent embodiment, the aspects of state that can differ among drawingregions include the properties of a line drawn on the wall using astylus. Other aspects of state, such as the response of the system tofinger touch behaviors may not be affected by drawing regions.

We now describe an example in which technology disclosed can be deployedas a distributed collaboration system. FIG. 2 illustrates an example ofa distributed collaboration system. The system can include a sharedcollaboration server 107 which can be linked to a number of facilities(e.g. facility 1 and facility 2) which are geographically distributed,and at which display clients are located. For example, Facility 1 may belocated in New York City, while Facility 2 may be located in LosAngeles. There may be many other physical locations at which displayclients usable in a collaboration system are located. For example,Facility 1 can include one or more meeting rooms and offices. It can beseen that three users are attending a collaboration meeting in room 205.The workspace can be downloaded on the digital display wall in themeeting room and also on tablet and laptop computers of the usersattending the meeting. For illustration purposes, we have shown one room205 in Facility 1. The room 205 in Facility 1 can include one or moredigital display walls. It can also include large-format display that isimplemented using a plurality of displays. The other meeting rooms inFacility 1 can include digital display walls or other computing devicesuch as laptop or desktop computers. The users can also joincollaboration meeting from their private offices or other rooms in whichthe personal computer or laptop can be utilized as the display clientfor a session interacting in a chosen workspace.

Facility 2 in this illustration is like Facility 1. Facility 2 can alsoinclude one or more meeting rooms and offices. For illustration purposeswe have shown one room 207 in Facility 2 the includes a digital displaywall. Facility 2 can also include other meeting rooms and offices. Theusers can join collaboration meeting from other meeting rooms inFacility 2 or private offices or other rooms in which the personalcomputer, laptop, tablet mobile computing devices, or mobile phone canbe utilized as the display client for a session. One user is seenattending the meeting in the room 207. The workspace can be downloadedon the digital display wall in the room and the tablet device of theuser.

We now present two examples in which the technology disclosed is used toshare a workspace with multiple display clients. FIGS. 3A and 3Billustrate a first example in which a user enters display identificationcodes to identify the display clients. FIGS. 4A and 4B illustrate asecond example in which a user enters mobile phone numbers to identifythe display clients to send workspace to digital display clients.

FIG. 3A illustrates an example digital collaborative workspace system inwhich four display clients including a mobile phone 102 f, a digitaldisplay wall 102 c, a digital display wall 102 d and a laptop computer102 b are connected to the collaboration server 107 through variousnetwork connections. As described above, these devices (i.e., the mobilephone 102 f, the digital display wall 102 c, the digital display wall102 d, the laptop computer 102 b and the collaboration server 107) canbe located in the same room, in different rooms in the same facility orat different facilities around the world.

The digital collaborative workspace system (also referred throughoutthis document as “the system”) can includes logic to identify displayclients linked to the server-side network node such as the collaborationserver 107. For example, the collaboration server 107 can identifydisplay clients connected thereto. The system (e.g., a network node ofthe system, such as the collaboration server 107) can send respectivedisplay identification codes (DICs) to display clients connectedthereto. The respective DICs can be displayed on displays of the displayclients. As shown in FIG. 3A, the DICs of respective display clients aredisplayed on the display clients. The DICs sent by, for example acommunication module of the collaboration server 107, can be comprisedof various characters such as numbers, letters and symbols or anycombination thereof. The number of characters in the DICs should beappropriate for the number of users of the system so as to avoid aninstance of running out of DICs and to also provide some security toprevent random selection of a DIC, by a user, to join a collaboration.

Referring to FIG. 3A, a user has entered her credentials to access ashared digital workspace labeled as “workspace A” on the mobile phone102 f (e.g., the user provides credentials and selects “workspace A”).It is possible that a shared digital workspace does not requirecredentials and the user, once connected to the system, is able to justselect/identify the desired shared digital workspace. Afterauthenticating the user (e.g., after the user logs onto the systemand/or the user provides credentials to gain access to the shareddigital workspace), the collaboration server 107 can provide, fordisplay on the mobile phone 102 f, DICs of available display clientsconnected to the system. A user can be authenticated using credentialsassigned to them, or by using fingerprints, facial recognition, retinalscanning or other methods of physically identifying the user. In anembodiment, access to certain shared digital workspaces can be limited(e.g., read only) or denied based on authorizations associated with theuser.

In one embodiment, the DICs of available display clients will not beprovided for display on the mobile phone 102 f. Rather, the user wouldhave to be in the same room as the other display clients and observe,for example, the DIC “12345” displayed by the display wall 102 c or theDIC “12345” would need to be communicated to the user in some othermanner if the user is in a different room, facility or geographicallocation.

The collaboration server 107 can include a data structure or can beconnected to a database in which a list of available display clients isstored. In one embodiment, this list is referred to as “lobby”. The usercan select one or more display clients to share the digital workspaceeither by touching the user interface of the mobile phone 102 f, byentering the DIC in an input text box, or by other input methods such asvoice input, etc. For example, the user of the mobile phone 102 f canselect/enter their own DIC (e.g., “56789”) and the DICs (e.g., “12345”,“24680” and “35792”) of the other display clients. Note that in oneembodiment the user of the mobile phone 102 f would not need to entertheir own DIC, it would be assumed that the user of the mobile phone 102f who is starting or joining the collaboration would be a part of thecollaboration. For example, the user could select/enter the DICs of theother three display clients and then the mobile phone 102 f would sendinformation to the collaboration server 107 that identifies the sharddigital workspace, the DIC of the mobile phone 102 f and the DICs of theother three display clients. Alternatively, the user of the mobile phone102 f can collaborate with just one other display client byselecting/identifying the shared digital workspace and the DIC of theother display client.

The collaboration server 107 detects the input from the user includingone or more display identification codes (DICs). In this example, theuser enters the display identification codes “12345”, “35791”, and“24680” and the collaboration server 107 receives, via the communicationmodule, information identifying the selections of the user as well asinformation identifying the user and/or the mobile phone 102 f Thecollaboration server 107 determines that a match exists when a DICidentified by the input from the user matches the DIC sent to thedisplay client. In this example, the collaboration server 107 matchesthe three requested DICs provided as input by the user to the threedisplay identification codes sent to the three display clients 102 c,102 b, and 102 d respectively. If a match between the DIC identified bythe input from the user does not match the DIC sent to the displayclient, then the collaboration server 107 determines that a match doesnot exist, notifies the user and prompts the user to provide a differentDIC. If a match is determined to exist, then the collaboration server107 starts a collaboration (e.g., a collaboration session) by providingaccess to the shared digital workspace, labelled as “workspace A” to thethree display clients as shown in FIG. 3B. In other words, acollaboration is started in dependence upon a determination of whetheror not a match or matches exist. In an embodiment, the user whoinitiated or joined the collaboration can, at any point, disable thedisplay client's access to the shared digital workspace (“workspace A”).

Additionally, as described above, a smart dongle 111 can be connected todisplay 102 d. This smart dongle 111 includes hardware and softwarecapable of (i) communicating with the collaboration server 107 to obtainthe DIC, (ii) communicating with the display 102 d to provide the DICfor display and to also provide and (iii) communicating with thecollaboration server 107 and the display 102 d to gain access to theshared digital workspace and provide the shared digital workspace to thedisplay. In this example, the display 102 d can be a “dumb” display thatsimply displays video and/or audio output from the smart dongle 111. Asmart dongle 111 can generate and provide the DIC to the display 102 dor the collaboration server 107 can generate the DIC, provide the DIC tothe smart dongle 111 and then the smart dongle 111 can provide the DICto the display 102 d. The smart dongle 111 can generate the DIC at theinstruction of the collaboration server 107 or just on its own.

Further, as illustrated in FIG. 3B, “workspace A” is displayed on themobile phone 102 f. However, other options are available, such thatother interfaces are displayed on mobile phone 102 f while the user isviewing and interacting with “workspace A” on the other display clients.For example, the user can interact with an interface on their mobilephone 102 f to navigate and interact with “workspace A” while “workspaceA” is displayed on display 102 d. The interface on the mobile phone 102f can be configured to act as a track pad, a keyboard for text input,etc. These features are described in more detail below.

FIG. 4A presents a second example in which an authenticated user on amobile phone 102 f is requesting to send a shared digital workspacelabelled as “workspace B” to display clients 102 c and 102 d. Thedatabase 108 storing the display mappings includes mapping information405 that maps cell phone numbers of users to display identificationcodes (DICs) sent to display clients. The mapping information 405 maps amobile phone number of a particular user to the display identificationcode (DIC) sent to or assigned to a display client such as displayclient 102 c. The display client 102 d is connected to a smart dongle111. The mapping information 405 maps a mobile phone number of a user tothe DIC associated with the smart dongle 111 which is registered with amobile phone number of a user. For example, the mobile phone number650-123-4567 is mapped to the display identification code 12345 which isassociated with the display client 102 c. Therefore, the display client102 c is registered with the phone number 650-123-4567. Similarly, themobile phone number 650-248-3579 is mapped to the display identificationcode 24680 which is associated with the smart dongle 111. As the smartdongle 111 is connected to the display client 102 d, the displayidentification code 24680 is displayed on the display of the client 102d. The display client 102 d is therefore, registered with the mobilephone number 650-248-3457 via the smart dongle 111. In anotherembodiment, a mobile phone number can be mapped to more than one displayclient.

The user of the mobile phone 102 f enters the mobile phone numbers650-123-4567 and 650-248-3579 to share “workspace B” with displayclients to which these mobile numbers are mapped. In the same mannerdescribed above with respect to FIGS. 3A and 3B, the collaborationserver 107 detects input from the user including mobile phone numbersentered by the user. The collaboration server 107 determines that themobile phone number 650-123-4567 matches the first entry in the mappinginformation 405 and the mobile phone number 650-248-3579 matches thesecond entry in the mapping information 405. The collaboration server107 then identifies the DICs of the matching phone numbers and starts acollaboration by providing access to the shared digital workspace (i.e.,“workspace B”) to the display clients as shown in FIG. 4B. Again, accessto the display client 102 d is provided through the smart dongle 111.

FIGS. 5A and 5B illustrate examples of user interaction with “workspaceB” displayed on the display client 102 d. The display client 102 d, forexample, is not touch enabled and therefore the user cannot interactwith the digital assets in “workspace B” by touching on a displaysurface of the display client 102 d or by performing other gestures.Therefore, the technology disclosed allows the user to interact with“workspace B” via the mobile phone 102 f.

As shown in FIG. 5A, the user can interact with the digital assets suchas documents by performing gestures on the display of the mobile phone102 f. The user can also search workspaces by entering search terms onthe user interface of the mobile phone 102 f The display surface of themobile phone 102 f can also be used as a track pad to navigate throughthe workspace or to move and organize the digital assets in “workspaceB” as shown in FIG. 5B. In other embodiment, the user can enter insearch terms on their mobile phone 102 f to search through the shareddigital workspace and the results of the search can be displayed on theother display clients and can optionally be displayed on the mobilephone 102 f as well.

FIG. 6 is a flowchart illustrating logic executed by the collaborationserver 107, which is a network node of the digital collaborativeworkspace system. The logic can be implemented using processorsprogrammed using computer programs stored in memory accessible to thedigital collaborative workspace system and executable by the processors,by dedicated logic hardware, including field programmable integratedcircuits, and by combinations of dedicated logic hardware and computerprograms. As with all flowcharts herein, it will be appreciated thatmany of the steps can be combined, performed in parallel or performed ina different sequence without affecting the functions achieved. In somecases, as the reader will appreciate, a re-arrangement of steps willachieve the same results only if certain other changes are made as well.In other cases, as the reader will appreciate, a re-arrangement of stepswill achieve the same results only if certain conditions are satisfied.Furthermore, it will be appreciated that the flow chart herein showsonly steps that are pertinent to an understanding of the invention, andit will be understood that numerous additional steps for accomplishingother functions can be performed before, after and between those shown.

FIG. 6 illustrates logic executed on the server when a user input isdetected at a step 601. In addition to the features described above,FIG. 6 describes additional scheduling features provided by the digitalcollaborative workspace system. The collaboration server 107 of thedigital collaborative workspace system can receive input from the useras transmitted from one of a digital display wall, a mobile device, atablet device, a portable computing device and a desktop computingdevice. The collaboration server 107 can include logic to authorize theuser to access the shared digital workspace from at least one of adisplay wall, a mobile computing device, a tablet device, a portablecomputing device and a desktop computing device. The collaborationserver 107 can receive scheduling and meeting data from external systemssuch as Microsoft™ Outlook and Google™ Calendar, etc. (step 605). At astep 610, the collaboration server 107 authenticates the identificationof the user in dependence upon the detected input from the user prior tothe start of the collaboration. The system can include logic to restrictaccess to the shared digital workspace by the network node in dependenceupon authorization information associated with the authenticated userand with the shared digital workspace. If the user is authorized toaccess the shared digital workspace from the digital display wall, themobile device, the tablet device, the portable computing device or thedesktop computing device, then the collaboration server matches useridentification with meeting schedules received from external systems todetermine if the user has access to the digital display clients in themeeting room (step 615). If the user is the organizer or the owner ofthe meeting scheduled in a meeting room and the time of user's requestis within the start and end time of the scheduled meeting (step 620),then the process continues at the following steps. Otherwise, the systemsends an error message to the user that she is not authorized todownload or access the shared digital workspace (or the workspace) onthe display client in the meeting room (step 625).

The collaboration server 107 matches requested display identificationcodes (DICs) entered by the user to the display identification codessent to the digital displays at step 630. A match exists when therequested DIC identified by the input from the user matches the DIC sentto the client-side network node also referred to as the display client.(step 635). Upon identifying a match, the collaboration server 107provides the shared digital workspace (or a portion thereof) to thedisplay client or the collaboration server 107 allows the display clientto access the shared digital workspace (step 645). Otherwise, the serversends a mismatch message to the user (step 640). The error message canbe displayed on the device from which the input from the user wasdetected by the server. The system can request another input from theuser to identify a potential display client (or client-side networknode) using another requested DIC.

FIG. 7 presents flowchart of process steps executed on the server whenthe user enters mobile phone numbers to download the shared digitalworkspace (step 701). The system receives scheduling and meeting datafrom external systems such as Microsoft™ Outlook and Google™ Calendar,etc. (step 705). The system can include a user authentication step 610as shown in the flowchart of FIG. 6. At a step 710, the collaborationserver 107 matches mobile phone numbers entered by the user to displayidentification codes in the mappings database 108. If a mobile phonenumber entered by the user does not match a display identification code(step 715), the collaboration server 107 sends a mismatch message to theuser (step 720). At a step 725, the collaboration server 107 matchesuser identification with the information received from the meetingschedules to determine if the user has access to the display clients.This step is similar to step 605 in the flowchart of FIG. 6. Uponidentifying a match (step 730), the collaboration server 107 providesthe shared digital workspace (or a portion thereof) to the displayclient or the collaboration server 107 allows the display client toaccess the shared digital workspace (step 740). Otherwise, the systemsends a schedule mismatch message to the user (step 735).

FIG. 8 presents a flowchart of server-side process steps to send displayidentification code to an available display client and send (or upload)a shared digital workspace (or a portion thereof) to the display client.The process starts at a step 801. At a step 805 the collaboration server107 detects a free display client connected thereto. The collaborationserver 107 sends a display identification code (DIC) to the displayclient at a step 810. The digital display is added to theabove-described lobby at a step 815. The lobby includes digital displayclients that are available for collaboration meetings. At a step 820 thesystem receives login credentials from a user and authenticates theuser. Upon authenticating the user, the collaboration server 107presents a list of workspaces to the user at a step 825. The userselects a workspace for collaboration and enters one or more displayidentification codes (DICs) for sending the workspace to displayclients. The system can present a list of display identification codesof available display clients to the user to select from. The user caninput or select one or more display identification codes on the userinterface of the client device. Alternatively, the user is not presentedwith a list of workspaces and or DICs, but rather must identify adesired workspace and/or desired DICs without selection from a list.

The collaboration server 107 receives requested DICs from the user at astep 830. The collaboration server 107 attempts to match the requestedDICs to DICs in the display mappings database. If a requested DICentered by the user does not match a DIC sent to a display client (NO atstep 835), then the user is alerted and then prompted to select and/orenter a different DIC (step 820). If a requested DIC entered by the usermatches a DIC sent to a display client by the collaboration server 107(YES at step 835) by the collaboration server 107, then thecollaboration server 107 sends (or provides access to) the shareddigital workspace (or a portion thereof) to the display client (step840). The collaboration server 107 can remove the display client fromthe lobby and temporarily disable the DIC of the display client (step845). Accordingly, the display client is not available for any othercollaboration for the duration of the collaboration. In other words,other users are prevented from starting another collaboration on thedisplay client. At a step 850, the collaboration server 107 receives alogout message from the user at the end of the collaboration. Then thetemporarily disabled DIC can be re-enabled. In one embodiment, thesystem can change the DIC previously provided to the display client(i.e., the display client gets a new or replacement DIC). Thisembodiment represents an example of implementing one-time displayidentification codes (DICs). In such an embodiment, a new DIC is sent tothe display client when the display client becomes available for acollaboration meeting.

In a further embodiment, a duration of time is associated with each DICby the digital collaborative workspace system. For example, a time of 60minutes can be associated with a particular DIC, such that at theexpiration of the duration of time (which begins when a collaborationassociated with the DIC begins) the collaboration is terminated and/or amessage can be displayed to the user or users. In an embodiment, theuser or users can be given the option to extend the duration of time bya predetermined amount of time. In another embodiment, the user or userswill not be able to extend the duration of time because other users maybe scheduled to conduct a collaboration using the same display clients.As described above with FIGS. 1A, 1B 7 and 8, a scheduling system 105(e.g., an electronic calendar) can be used to set the duration of time,such that the DICs are only available to users (or certain usersattending the scheduled collaboration) during the scheduled time of themeeting. At the scheduled ending time of the meeting (as indicated bythe electronic calendar), the users can be notified and/or thecollaboration can be terminated.

FIGS. 9A, 9B, 9C, 9D, 9E, 9F, 9G and 9H represent data structures whichcan be part of workspace data maintained by the display mappingsdatabase 108 and event map stack database 109 at the collaborationserver 107. In FIG. 9A, an event data structure is illustrated. An eventis an interaction with the workspace that can result in a change inworkspace data. An interaction event can occur during a collaboration,therefore the event can include the meeting identifier identifying thecollaboration. An event can include an event identifier, a categoryidentifier, a user identifier, a timestamp, a session identifier, anevent type parameter, the client identifier, and an array of locationsin the workspace, which can include one or more locations for thecorresponding event. It is desirable for example that the timestamp haveresolution on the order of milliseconds or even finer resolution, inorder to minimize the possibility of race conditions for competingevents affecting a single object. Also, the event data structure caninclude a UI target, which identifies an object in the workspace data towhich a stroke on a touchscreen at a client display is linked. Eventscan include style events, which indicate the display parameters of astroke for example. The events can include a text type event, whichindicates entry, modification or movement in the workspace of a textobject. The events can include a card type event, which indicates thecreation, modification or movement in the workspace of a card typeobject. The events can include a stroke type event which identifies alocation array for the stroke, and display parameters for the stroke,such as colors and line widths for example.

Events can be classified as persistent, history events and as ephemeralevents. Processing of the events for addition to workspace data andsharing among users can be dependent on the classification of the event.This classification can be inherent in the event type parameter, or anadditional flag or field can be used in the event data structure toindicate the classification.

A spatial event map can include a log of events having entries forhistory events, where each entry comprises a structure such asillustrated in FIG. 9A. The server-side network node includes logic toreceive messages carrying ephemeral and history events from client-sidenetwork nodes, and to send the ephemeral events to other client-sidenetwork nodes without adding corresponding entries in the log, and tosend history events to the other client-side network nodes while addingcorresponding entries to the log.

FIG. 9B presents a displays data structure. The displays data structureincludes information related to the display clients such as the displayidentification code (DIC) sent to the display client, a facilityidentifier, a location identifier (identifying a meeting room or officein a facility), and an available flag indicating whether the displayclient is available for a collaboration. The available flag is set tofalse when the display client is used in a collaboration.

FIG. 9C presents a phone numbers data structure. In the phone numbersdata structure, a mapping of the phone numbers of the users to displayclients is maintained. For example, this data structure can include thedisplay identification code (DIC) and a user identifier.

FIG. 9D presents a meetings data structure. The meeting data structurecan be used to identify a meeting. The system can use the informationreceived from external systems such as scheduling and conferencingsystems to identify meeting attributes. The meeting data structure canstore a meeting identifier, the start time of the meeting and end timeof the meeting. The meeting data structure can also include useridentifiers of users who are participating in the meeting, an identifierof the meeting owner or meeting organizer, a number of participants inthe meeting, etc.

FIG. 9E illustrates a card data structure. The card data structure canprovide a cache of attributes that identify current state informationfor an object in the workspace data, including a session identifier, acard type identifier, an array identifier, the client identifier,dimensions of the cards, type of file associated with the card, and asession location within the workspace.

FIG. 9F illustrates a data structure which consolidates a number ofevents and objects into a catchable set called a chunk. The datastructure includes a session ID, and identifier of the events includedin the chunk, and a timestamp at which the chunk was created.

FIG. 9G illustrates the data structure for links to a user participatingin a session in a chosen workspace. This data structure can include anaccess token, the client identifier for the session display client, theuser identifier linked to the display client, a parameter indicating thelast time that a user accessed a session, and expiration time and acookie for carrying various information about the session. Thisinformation can, for example, maintain a current location within theworkspace for a user, which can be used each time that a user logs in todetermine the workspace data to display at a display client to which thelogin is associated. A user session can also be linked to a meeting. Oneor more users can participate in a meeting. A user session datastructure can identify the meeting in which a user participated induring a given collaboration meeting. Linking a user session to ameeting enables the technology disclosed to determine the identificationof the users and the number of users who participated in the meeting.

FIG. 9H illustrates a display array data structure which can be used inassociation with large-format displays that are implemented by federateddisplays, each having a display client. The display clients in suchfederated displays cooperate to act as a single display. The workspacedata can maintain the display array data structure, which identifies thearray of displays by an array ID and identifies the session position ofeach display. Each session position can include an x-offset and ay-offset within the area of the federated displays, a sessionidentifier, and a depth.

The system can encrypt communications with client-side network nodes andcan encrypt the database in which the spatial event maps are stored.Also, on the client-side network nodes, cached copies of the spatialevent map are encrypted in some embodiments, to prevent unauthorizedaccess to the data by intruders who gain access to the client-sidecomputers.

FIG. 10 is a diagram representing a functional architecture for adistributed collaboration system used to create, modify, distribute anddisplay workspace data for a workspace. The basic configuration includesa collaboration service 1001 which manages display mappings and eventdata executed by a server, such as collaboration server 107, a portalservice 1002 which can be executed by a server such as collaborationserver 107 or located in other computer systems accessible to theserver, such as a peer network node, and a display client 1003 locatedat a client-side network node, at which the user interaction is active.The display client 1003 is in communication with the collaborationservice 1001 and with the portal 1002. The communication channel 1013between the display client 1003 and a collaboration service 1001 managesthe download of session history, and the live update of session events.Also, across this communication channel 1013, a display client 1003 canupload images that can be associated with events to the collaborationservice 1001. The collaboration service 1001 uses the communicationchannel to send display identification codes to display clients. Thecollaboration service 1001 also uses the communication channel 1013 toreceive messages from display clients when they are available and thenadds the display clients to a list of display clients that available forcollaborations (also referred to as lobby above). The collaborationservice is in communication with a mapping engine 1006. The mappingengine 1006 maps display identification codes to display clients. Italso maps the users' phone numbers to display identification codes andthis maintains a mapping of user phone numbers to display clients. Themapping engine stores the mapping data in the display mappings database108.

The display client 1003 is in communication with the portal 1002 acrosscommunication channel 1023. The portal 1002 manages a homepage for theworkspace data (also referred to as shared digital workspace), sessionmanagement and user administration. This portal can be utilized for userlogin, authentications, and for delivering image files and the like asan alternative to, and in parallel with, the communication channel 1013.The collaboration service 1001 and portal 1002 are in communicationacross channel 1012. The collaboration service 1001 and portal 1002manage authentication and authorization protocols, and coordinatesession administration, and workspace data management.

The display client 1003 can be part of a client-side network nodeincluding a physical or virtual computer system having computer programsstored in accessible memory that provide logic supporting thecollaboration, including an HTML 5 client, wall array coordination logicfor display array implementations, workspace data parsing searching andrendering logic, and a session events application to manage liveinteraction with workspace data at the server and the display wall.

The portal 1002 can be part of a server-side network node including aphysical or virtual computer system having computer programs stored inaccessible memory, that provide logic supporting user access to thecollaboration server. The logic can include applications to provideinitial entry points for users, such as a webpage with login resources,logic to manage user accounts and session anticipation, logic thatprovides authorization services, such as OAuth-based services, andaccount data. The portal 1002 communicates to scheduling systems 105.The portal can therefore, collect user data and meeting data from thescheduling systems.

The collaboration service 1001 can be part of a server-side network nodeincluding, and can manage the session event data, coordinate updatedevents among clients, deliver catchable history and images to clients,and control access to a database stored in the workspace data. Thecollaboration service communicates with a classification engine that canclassify interaction events into categories.

A spatial event map system can include an API executed in coordinationby client-side and server-side resources including any number ofphysical and virtual machines. One example of an API is described below.An API can be defined in a variety of ways, while including the elementssupporting maintenance of a spatial event map in a server-side networknode or nodes and supporting sharing of the spatial event map with oneor a plurality of active client-side network nodes. In this example, theAPI is broken down in this example into processes managed by twoservers:

Socket Requests Server (Websockets)—used for updating clients withrelevant data (new strokes, cards, clients, etc.) once connected. Alsohandles the initial connection handshake.

Service Requests Server (HTTP/REST)—used for cacheable responses, aswell as posting data (i.e. images and cards)

Client-side network nodes are configured according to the API andinclude corresponding socket requests clients and service requestsclients.

History Event

All persistent events are sent as HistoryEvent. This includes forexample, moving windows, setting text, deleting windows, creatingwindows. HistoryEvents are written to the session's history and returnedwhen the history is retrieved. HistoryEvents are sent to the serverwithout an eventId. The server assigns an eventId and broadcasts theevent to all clients (including the originating client). New object idscan be reserved using the oid message.

Basic Message Format

// server <-- client [client-id, “he”, target-id, event-type,event-properties] client-id - - (string) the ID of the originatingclient target-id - - (string) the ID of the target object/widget/app towhich this event is relevant event-type - - (string) an arbitrary eventtype properties - - (object) a JSON object describing pertinent key /values for the event. // server --> client[client-id, “he”, target-id,event-id, event-type, event-properties] client-id - - (string) the ID ofthe originating client target-id - - (string) the ID of the targetwindow to which this event is relevant event-id - - (string) the ID ofthe event in the database event-type - - (string) an arbitrary eventtype properties - - (object) a JSON object describing pertinent key /values for the event. // server−> client format of ‘he’ is: [<clientId>,<messageType>, <targetId>, <eventId>,Note: The eventId will also be included in history that is fetched viathe HTTP API.History events by Object/Application type

Session

Create—Add a note or image on the work session

stroke—Add a pen or eraser stroke on the background

Note

text—Sets or update the text and/or text formatting of a note.

delete—Remove the note from the work session

position—Update the size or location of the note in the work session

pin—Pin or unpin the note

stroke—Add a pen or eraser stroke on top of the image

Image

delete—Remove the note from the work session

position—Update the size or location of the note in the work session

pin—Pin or unpin the note

stroke—Add a pen or eraser stroke on top of the image

Volatile Event

Volatile events are ephemeral events not recorded in the undo/playbackevent stream, so they're good for in-progress streaming events likedragging a card around the screen, and once the user lifts their finger,a HistoryEvent is used to record its final place.

// server <--> client[client-id, “ve”, target-id, event-type,event-properties] client-id - - (string) the ID of the originatingclient target-id - - (string) the ID of the target window to which thisevent is relevant event-type - - (string) an arbitrary event typeproperties - - (object) a JSON object describing pertinent key / valuesfor the event.

FIG. 11 is a simplified block diagram of a computer system, or networknode, which can be used to implement the client-side functions (e.g.computer system 110 or smart dongle 111) or the server-side functions(e.g. server 107) in a distributed collaboration system. A computersystem typically includes a processor subsystem 1114 which communicateswith a number of peripheral devices via bus subsystem 1112. Theseperipheral devices may include a storage subsystem 1124, comprising amemory subsystem 1126 and a file storage subsystem 1128, user interfaceinput devices 1122, user interface output devices 1120, and acommunication module 1116. The input and output devices allow userinteraction with the computer system. Communication module 1116 providesphysical and communication protocol support for interfaces to outsidenetworks, including an interface to communication network 104, and iscoupled via communication network 104 to corresponding communicationmodules in other computer systems. Communication network 104 maycomprise many interconnected computer systems and communication links.These communication links may be wireline links, optical links, wirelesslinks, or any other mechanisms for communication of information, buttypically it is an IP-based communication network, at least at itsextremities. While in one embodiment, communication network 104 is theInternet, in other embodiments, communication network 104 may be anysuitable computer network.

The physical hardware component of network interfaces are sometimesreferred to as network interface cards (NICs), although they need not bein the form of cards: for instance they could be in the form ofintegrated circuits (ICs) and connectors fitted directly onto amotherboard, or in the form of macrocells fabricated on a singleintegrated circuit chip with other components of the computer system.

User interface input devices 1122 may include a keyboard, pointingdevices such as a mouse, trackball, touchpad, or graphics tablet, ascanner, a touch screen incorporated into the display (including thetouch sensitive portions of large format digital display such as 102 c),audio input devices such as voice recognition systems, microphones, andother types of tangible input devices. In general, use of the term“input device” is intended to include all possible types of devices andways to input information into the computer system or onto computernetwork 104.

User interface output devices 1120 may include a display subsystem, aprinter, a fax machine, or non-visual displays such as audio outputdevices. The display subsystem may include a cathode ray tube (CRT), aflat panel device such as a liquid crystal display (LCD), a projectiondevice, or some other mechanism for creating a visible image. In theembodiment of FIG. 1B, it includes the display functions of large formatdigital display such as 102 c. The display subsystem may also providenon-visual display such as via audio output devices. In general, use ofthe term “output device” is intended to include all possible types ofdevices and ways to output information from the computer system to theuser or to another machine or computer system.

Storage subsystem 1124 stores the basic programming and data constructsthat provide the functionality of certain embodiments of the presentinvention.

The storage subsystem 1124 when used for implementation of server sidenetwork-nodes, comprises a product including a non-transitory computerreadable medium storing a machine readable data structure including aspatial event map which locates events in a workspace, wherein thespatial event map includes a log of events, entries in the log having alocation of a graphical target of the event in the workspace and a time.Also, the storage subsystem 1124 comprises a product includingexecutable instructions for performing the procedures described hereinassociated with the server-side network node.

The storage subsystem 1124 when used for implementation of client sidenetwork-nodes, comprises a product including a non-transitory computerreadable medium storing a machine readable data structure including aspatial event map in the form of a cached copy as explained below, whichlocates events in a workspace, wherein the spatial event map includes alog of events, entries in the log having a location of a graphicaltarget of the event in the workspace and a time. Also, the storagesubsystem 824 comprises a product including executable instructions forperforming the procedures described herein associated with theclient-side network node.

For example, the various modules implementing the functionality ofcertain embodiments of the invention may be stored in storage subsystem824. These software modules are generally executed by processorsubsystem 814.

Memory subsystem 1126 typically includes a number of memories includinga main random-access memory (RAM) 1130 for storage of instructions anddata during program execution and a read only memory (ROM) 1132 in whichfixed instructions are stored. File storage subsystem 1128 providespersistent storage for program and data files, and may include a harddisk drive, a floppy disk drive along with associated removable media, aCD ROM drive, an optical drive, or removable media cartridges. Thedatabases and modules implementing the functionality of certainembodiments of the invention may have been provided on a computerreadable medium such as one or more CD-ROMs and may be stored by filestorage subsystem 1128. The host memory 1126 contains, among otherthings, computer instructions which, when executed by the processorsubsystem 1114, cause the computer system to operate or performfunctions as described herein. As used herein, processes and softwarethat are said to run in or on “the host” or “the computer,” execute onthe processor subsystem 1114 in response to computer instructions anddata in the host memory subsystem 1126 including any other local orremote storage for such instructions and data.

Bus subsystem 1112 provides a mechanism for letting the variouscomponents and subsystems of a computer system communicate with eachother as intended. Although bus subsystem 1112 is shown schematically asa single bus, alternative embodiments of the bus subsystem may usemultiple busses.

The computer system itself can be of varying types including a personalcomputer, a portable computer, a workstation, a computer terminal, anetwork computer, a television, a mainframe, a server farm, or any otherdata processing system or user device. In one embodiment, a computersystem includes several computer systems, each controlling one of thetiles that make up the large format display such as 102 c. Due to theever-changing nature of computers and networks, the description ofcomputer system 110 depicted in FIG. 11 is intended only as a specificexample for purposes of illustrating the preferred embodiments of thepresent invention. Many other configurations of the computer system arepossible having more or less components than the computer systemdepicted in FIG. 11. The same components and variations can also make upeach of the other devices 102, and 111 in the collaboration environmentof FIG. 1, as well as the collaboration server 107 and databases 108 and109.

Certain information about the drawing regions active on the digitaldisplay 102 c are stored in a database accessible to the computer system110 of the display client. The database can take on many forms indifferent embodiments, including but not limited to a MongoDB database,an XML database, a relational database or an object-oriented database.

FIG. 12 is a simplified diagram of a client-side network node, includinga client processor 1200, a display driver 1201, a local display and userinterface such as a touchscreen 1202, a protocol stack 1204 including acommunication interface controlled by the stack, local memory 1205storing a cache copy of the live spatial event map and a cache of imagesand other graphical constructs used in rendering the displayable area,and input protocol device 1207 which executes a input protocol whichtranslates input from a tangible user input device such as atouchscreen, or a mouse, into a form usable by a command interpreter1206. A suitable input protocol device 1207 can include softwarecompatible with a TUIO industry-standard, for example for interpretationof tangible and multi-touch interaction with the display wall. Theprotocol stack 1204 receives API compliant messages and Internetmessages from the client processor 1200 and as discussed above includesresources to establish a channel 1211 to a collaboration server acrosswhich API compliant messages can be exchanged, and a link 1210 to theInternet in support of other communications that serve the local display1202. The scheduling systems 105 can also be in communication with theclient processor 1200 to send meeting related data such as meetingidentifier and information about the participants in a meeting. Theclient processor can then pass the meeting related data to thecollaboration server. The display driver 1201 controls a displayablearea 1203 on the local display 1202. The displayable area 1203 can belogically configured by the client processor or other programmingresources in the client-side network node. Also, the physical size ofthe displayable area 1203 can be fixed for a given implementation of thelocal display. The client processor 1200 can include processingresources such as a browser, mapping logic used for translating betweenlocations on the displayable area 1203 and the workspace, and logic toimplement API procedures.

The client-side network node shown in FIG. 12 illustrates an exampleincluding an application interface including a process to communicatewith the server-side network node. The client-side network node shown inFIG. 12 illustrates an example configured according to an API, whereinthe events include a first class of event designated as history eventsto be distributed among other client-side network nodes and to be addedto the spatial event log in the server-side network node, and a secondclass of event designated as ephemeral to be distributed among otherclient-side network nodes but not added to the spatial event log in theserver-side network node.

FIG. 13 is a simplified flow diagram of a procedure executed by theclient-side network node. The order illustrated in the simplified flowdiagram is provided for the purposes of illustration and can be modifiedas suits a particular implementation. Many of the steps for example, canbe executed in parallel. In this procedure, a client login is executed(1300) by which the client is given access to a specific collaborationsession and its spatial event map. The collaboration server provides anidentifier of, or identifiers of parts of, the spatial event map whichcan be used by the client to retrieve the spatial event map from thecollaboration server (1301). The client retrieves the spatial event map,or at least portions of it, from the collaboration server using theidentifier or identifiers provided (1302).

For example, the client can request all history for a given workspace towhich it has been granted access as follows:

curl http://localhost:4545/<sessionId>/history The server will respondwith all chunks (each its own section of time):[″/<sessionId>/history/<startTime>/<endTime>?b=1″][″/<sessionId>/history/<startTime>/<endTime>?b=1″] For each chunk, theclient will request the events: Curl http://localhost:4545/<sessionId>/history/<startTime>/<endTime>?b=<cache-buster> Each responded chunk is an array of eventsand is cacheable by the client: [ [ 4, ″sx″, ″4.4″, [537, 650, 536, 649,536, 648, ...], { “size″: 10, ″color″: [0, 0, 0, 1], ″brush″: 1  },1347644106241, ″cardFling″ ] ]

The individual messages might include information like position onscreen, color, width of stroke, time created etc.

The client then determines a location in the workspace, using forexample a server provided focus point, and display boundaries for thelocal display (1303). The local copy of the spatial event map istraversed to gather display data for spatial event map entries that mapto the displayable area for the local display. In some embodiments, theclient may gather additional data in support of rendering a display forspatial event map entries within a culling boundary defining a regionlarger than the displayable area for the local display, in order toprepare for supporting predicted user interactions such as zoom and panwithin the workspace (1304). The client processor executes a processusing spatial event map events, ephemeral events and display data torender parts of the spatial event map that fall within the displayboundary (1305). This process receives local user interface messages,such as from the TUIO driver (1306). Also, this process receives socketAPI messages from the collaboration server (1310). In response to localuser interface messages, the process can classify inputs as historyevents and ephemeral events, send API messages on the socket to thecollaboration server for both history events and ephemeral events asspecified by the API, update the cached portions of the spatial eventmap with history events, and produce display data for both historyevents and ephemeral events (1307). In response to the socket APImessages, the process updates the cached portion of the spatial eventmap with history events identified by the server-side network node,responds to API messages on the socket as specified by the API, andproduce display data for both history events and ephemeral events aboutwhich it is notified by the socket messages (1311).

Logging in and downloading spatial event map.

1. The client request authorization to join a collaboration session andopen a workspace.

2. The server authorizes the client to participate in the session andbegin loading the spatial event map for the workspace.

3. The client requests an identification, such as a “table of contents”of the spatial event map associated with the session.

4. Each portion of the spatial event map identified in the table ofcontents is requested by the client. These portions of the spatial eventmap together represent the workspace as a linear sequence of events fromthe beginning of workspace-time to the present. The “beginning ofworkspace-time” can be considered an elapsed time from the time ofinitiation of the collaboration session, or an absolute time recorded inassociation with the session.

5. The client assembles a cached copy of the spatial event map in itslocal memory.

6. The client displays an appropriate region of the workspace using itsspatial event map to determine what is relevant given the currentdisplayable area or viewport on the local display.

Connecting to the session channel of live spatial event map events:

1. After authorization, a client requests to join a workspace channel.

2. The server adds the client to the list of workspace participants toreceive updates via the workspace channels.

3. The client receives live messages from the workspace that carry bothhistory events and ephemeral events, and a communication paradigm like achat room. For example, a sequence of ephemeral events, and a historyevent can be associated with moving object in the spatial event map to anew location in the spatial event map.

4. The client reacts to live messages from the server-side network nodeby altering its local copy of the spatial event map and re-rendering itslocal display.

5. Live messages consist of “history” events which are to be persistedas undue-double, recorded events in the spatial event map, and“ephemeral” events which are pieces of information that do not becomepart of the history of the session.

6. When a client creates, modifies, moves or deletes an object byinteraction with its local display, a new event is created by theclient-side network node and sent across the workspace channel to theserver-side network node. The server-side network node saves historyevents in the spatial event map for the session and distributes bothhistory events and ephemeral events to all active clients in thesession.

7. When exiting the session, the client disconnects from the workspacechannel.

A collaboration system can have many, distributed digital displays whichare used both to display images based on workspace data managed by ashared collaboration server, and to accept user input that cancontribute to the workspace data, while enabling each display to rapidlyconstruct an image to display based on session history, real time localinput and real-time input from other displays.

As used herein, the “identification” of an item of information does notnecessarily require the direct specification of that item ofinformation. Information can be “identified” in a field by simplyreferring to the actual information through one or more layers ofindirection, or by identifying one or more items of differentinformation which are together sufficient to determine the actual itemof information. In addition, the term “indicate” is used herein to meanthe same as “identify”.

Also as used herein, a given signal, event or value is “responsive” to apredecessor signal, event or value if the predecessor signal, event orvalue influenced the given signal, event or value. If there is anintervening processing element, step or time period, the given signal,event or value can still be “responsive” to the predecessor signal,event or value. If the intervening processing element or step combinesmore than one signal, event or value, the signal output of theprocessing element or step is considered “responsive” to each of thesignal, event or value inputs. If the given signal, event or value isthe same as the predecessor signal, event or value, this is merely adegenerate case in which the given signal, event or value is stillconsidered to be “responsive” to the predecessor signal, event or value.“Dependency” of a given signal, event or value upon another signal,event or value is defined similarly.

The applicant hereby discloses in isolation each individual featuredescribed herein and any combination of two or more such features, tothe extent that such features or combinations are capable of beingcarried out based on the present specification as a whole in light ofthe common general knowledge of a person skilled in the art,irrespective of whether such features or combinations of features solveany problems disclosed herein, and without limitation to the scope ofthe claims. The applicant indicates that aspects of the presentinvention may consist of any such feature or combination of features. Inview of the foregoing description it will be evident to a person skilledin the art that various modifications may be made within the scope ofthe invention.

The foregoing description of preferred embodiments of the presentinvention has been provided for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise forms disclosed. Obviously, many modificationsand variations will be apparent to practitioners skilled in this art.For example, though the displays described herein are of large format,small format displays can also be arranged to use multiple drawingregions, though multiple drawing regions are more useful for displaysthat are at least as large as 12 feet in width. In particular, andwithout limitation, any and all variations described, suggested by theBackground section of this patent application or by the materialincorporated by reference are specifically incorporated by referenceinto the description herein of embodiments of the invention. Inaddition, any and all variations described, suggested or incorporated byreference herein with respect to any one embodiment are also to beconsidered taught with respect to all other embodiments. The embodimentsdescribed herein were chosen and described in order to best explain theprinciples of the invention and its practical application, therebyenabling others skilled in the art to understand the invention forvarious embodiments and with various modifications as are suited to theparticular use contemplated. It is intended that the scope of theinvention be defined by the following claims and their equivalents.

What is claimed is:
 1. A digital collaborative workspace system,comprising: a network node having a communication module, a processor,and a database accessible thereto, the database storing a shared digitalworkspace, the network node comprising logic, executable by theprocessor, to: send (i) a first display identification code (DIC) to afirst network node for display of the first DIC and (ii) a second DIC toa second network node for display of the second DIC; register a mobilephone number of a particular user with the first network node, whereinthe database includes mapping information mapping the registered mobilephone number of the particular user to the first DIC associated with thefirst network node; detect an input from a user, via the communicationmodule, identifying (i) the shared digital workspace, (ii) theregistered mobile phone number of the particular user and (iii) a secondrequested DIC input by the user using a visual interface, determine thata first mobile phone number match exists when the registered mobilephone number of the particular user, as included in the detected inputfrom the user, is mapped to the first DIC in the mapping information;and in dependence upon the determination that the first mobile phonenumber match exists, start a collaboration by sending data of the shareddigital workspace to the first network node.
 2. The digitalcollaborative workspace system of claim 1, wherein the detected inputfrom the user further identifies a first requested DIC input by the userusing the visual interface, wherein the network node further compriseslogic, executable by the processor, to determine that (i) a first matchexists when the first requested DIC identified by the input from theuser matches the first DIC sent to the first network node and (ii) asecond match exists when the second requested DIC identified by theinput from the user matches the second DIC sent to the second networknode, and wherein the collaboration is started in dependence upon thedetermination that the first and second matches exist.
 3. The digitalcollaborative workspace system of claim 1, wherein the network nodefurther comprises logic, executable by the processor, to, upon the startof the collaboration, disable the first DIC and the second DIC toprevent another user from starting another collaboration on the firstand second network nodes.
 4. The digital collaborative workspace systemof claim 1, wherein the network node further comprises logic, executableby the processor, to, upon an end of the collaboration, enable the firstDIC and the second DIC to allow another user to start anothercollaboration using (i) the first network node having the first DIC sentthereto and the first requested DIC or (ii) the second network nodehaving the second DIC sent thereto and the second requested DIC.
 5. Thedigital collaborative workspace system of claim 1, wherein the networknode further comprises logic, executable by the processor, to, upon anend of the collaboration, change the first DIC, send the changed firstDIC to the first network node, change the second DIC and send thechanged second DIC to the second network node.
 6. The digitalcollaborative workspace system of claim 1, wherein the detected inputfrom the user further identifies a first requested DIC input by the userusing the visual interface, wherein the network node further compriseslogic, executable by the processor, to determine that (i) a first matchexists when the first requested DIC identified by the input from theuser matches the first DIC sent to the first network node and (ii) asecond match exists when the second requested DIC identified by theinput from the user matches the second DIC sent to the second networknode, and wherein the network node further comprises logic, executableby the processor, to, in response to a determination that one of thefirst match or the second match does not exist, transmit an errormessage to a device from which the input from the user was detected andrequest another input from the user to identify a potential network nodeusing another requested DIC.
 7. The digital collaborative workspacesystem of claim 1, wherein the network node further comprises logic,executable by the processor, to identify a scheduled collaboration starttime and a scheduled collaboration stop time and to terminate thecollaboration at the scheduled collaboration stop time.
 8. The digitalcollaborative workspace system of claim 7, wherein the network nodefurther comprises logic, executable by the processor, to: identify anelectronic calendar of the user indicating a scheduled collaboration;identify the scheduled collaboration start time and the scheduledcollaboration stop time of the scheduled collaboration from theelectronic calendar; determine an intended duration of the collaborationfrom the scheduled collaboration start time and the scheduledcollaboration stop time; and upon an elapsed time from the scheduledcollaboration start time approaching the intended duration of thecollaboration, on at least one of a device from which the input from theuser was detected, the first network node and the second network node,prompt the user that the scheduled meeting stop time is approaching. 9.(canceled)
 10. The digital collaborative workspace system of claim 1,wherein the first DIC sent to the first network node is a one-timeidentification code and the second DIC sent to the second network nodeis a one-time identification code.
 11. A digital collaborative workspacesystem, comprising: a network node having a communication module, aprocessor, and a database accessible thereto, the database storing ashared digital workspace, wherein a smart dongle is connected to a firstnetwork node and communicably connected to the communication module ofthe network node, wherein the smart dongle includes logic to provide afirst display identification code (DIC) to the first network node fordisplay of the first DIC, and wherein the network node further includeslogic, executable by the processor, to: send a second DIC to a secondnetwork node for display of the second DIC; register a mobile phonenumber of a particular user with the first network node, wherein thedatabase includes mapping information mapping the registered mobilephone number of the particular user to the first DIC associated with thefirst network node; detect an input from a user, via the communicationmodule, identifying (i) the shared digital workspace, (ii) theregistered mobile phone number of the particular user-a and (iii) asecond requested DIC input by the user using a visual interface;determine that a first mobile phone number match exists when theregistered mobile phone number of the particular user, as included inthe detected input from the user, is mapped to the first DIC in themapping information; and in dependence upon the determination that thefirst mobile phone number match exists, start a collaboration by sendingdata of the shared digital workspace to the first network node via thesmart dongle.
 12. The digital collaborative workspace system of claim11, wherein the detected input from the user further identifies a firstrequested DIC input by the user using the visual interface, wherein thenetwork node further comprises logic, executable by the processor, todetermine that (i) a first match exists when the first requested DICidentified by the input from the user matches the first DIC sent to thefirst network node and (ii) a second match exists when the secondrequested DIC identified by the input from the user matches the secondDIC sent to the second network node, and wherein the collaboration isstarted in dependence upon the determination that the first and secondmatches exist.
 13. The digital collaborative workspace system of claim11, wherein the network node further comprises logic, executable by theprocessor, to send the first DIC to the smart dongle.
 14. The digitalcollaborative workspace system of claim 11, wherein the digitalcollaborative workspace system includes the smart dongle, wherein thesmart dongle further includes logic to generate the first DIC andprovide the first DIC to the first network node for display and to thenetwork node and wherein the smart dongle is a unibody device directlyconnected to the first network node.
 15. A method of implementing adigital collaborative workspace including a network node having acommunication module, a processor and a database accessible thereto, themethod including: sending, from the network node, (i) a first displayidentification code (DIC) to a first network node for display of thefirst DIC and (ii) a second DIC to a second network node for display ofthe second DIC; registering a mobile phone number of a particular userwith the first network node, wherein the database includes mappinginformation mapping the registered mobile phone number of the particularuser to the first DIC associated with the first network node; detectingan input from a user, the detected input identifying (i) a shareddigital workspace, (ii) the registered mobile phone number of theparticular user and (iii) a second requested DIC input by the user usinga visual interface; determining that a first mobile phone number matchexists when the registered mobile phone number of the particular user,as included in the detected input from the user, is mapped to the firstDIC in the mapping information; and in dependence upon the determinationthat the first mobile phone number match exists, starting acollaboration by sending data of the shared digital workspace to thefirst network node.
 16. The method of claim 15, wherein the detectedinput from the user further identifies a first requested DIC input bythe user using the visual interface, wherein the method furthercomprises determining that (i) a first match exists when the firstrequested DIC identified by the input from the user matches the firstDIC sent to the first network node and (ii) a second match exists whenthe second requested DIC identified by the input from the user matchesthe second DIC sent to the second network node, and wherein thecollaboration is started in dependence upon to the determination thatthe first and second matches exist.
 17. A method of implementing adigital collaborative workspace system including a network node having acommunication module, a processor and a database accessible thereto, inwhich a first network node is linked to the network node via a smartdongle including logic to provide a first display identification code(DIC) to the first network node for display of the first DIC, the methodincluding: sending, by the network node, a second DIC to a secondnetwork node for display of the second DIC; registering a mobile phonenumber of a particular user with the first network node, wherein thedatabase includes mapping information mapping the registered mobilephone number of the particular user to the first DIC associated with thefirst network node; detecting an input from a user, identifying (i) ashared digital workspace, (ii) the registered mobile phone number of theparticular user and (iii) a second requested DIC input by the user usinga visual interface; determining that a first mobile phone number matchexists when the registered mobile phone number of the particular user,as included in the detected input from the user, is mapped to the firstDIC in the mapping information; and in dependence upon the determinationthat the first mobile phone number match exists, starting acollaboration by sending data of the shared digital workspace to thefirst network node via the smart dongle.
 18. The method of claim 17,wherein the detected input from the user further identifies a firstrequested DIC input by the user using the visual interface, wherein themethod further comprises determining that (i) a first match exists whenthe first requested DIC identified by the input from the user matchesthe first DIC sent to the first network node and (ii) a second matchexists when the second requested DIC identified by the input from theuser matches the second DIC sent to the second network node, and whereinthe collaboration is started in dependence upon the determination thatthe first and second matches exist.
 19. A non-transitory computerreadable storage medium impressed with computer program instructions toimplement a digital collaborative workspace system including a networknode having a communication module, a processor and a databaseaccessible thereto, the instructions, when executed on a processor,implement a method comprising: sending, from the network node, (i) afirst display identification code (DIC) to a first network node fordisplay of the first DIC and (ii) a second DIC to a second network nodefor display of the second DIC; registering a mobile phone number of aparticular user with the first network node, wherein the databaseincludes mapping information mapping the registered mobile phone numberof the particular user to the first DIC associated with the firstnetwork node; detecting an input from a user, the detected inputidentifying (i) a shared digital workspace, (ii) the registered mobilephone number of the particular user and (iii) a second requested DICinput by the user using a visual interface; determining that a firstmobile phone number match exists when the registered mobile phone numberof the particular user, as included in the detected input from the user,is mapped to the first DIC in the mapping information; and in dependenceupon the determination that the first mobile phone number match exists,starting a collaboration by sending data of the shared digital workspaceto the first network node.
 20. The non-transitory computer readablestorage medium of claim 19, wherein the detected input from the userfurther identifies a first requested DIC input by the user using thevisual interface, wherein the method further comprises determining that(i) a first match exists when the first requested DIC identified by theinput from the user matches the first DIC sent to the first network nodeand (ii) a second match exists when the second requested DIC identifiedby the input from the user matches the second DIC sent to the secondnetwork node, and wherein the collaboration is started in dependenceupon the determination that the first and second matches exist.
 21. Anon-transitory computer readable storage medium impressed with computerprogram instructions to implement a digital collaborative workspacesystem including a network node having a communication module, aprocessor and a database accessible thereto, in which a first networknode is linked to a network node via a smart dongle including logic toprovide a first identification code (DIC) to the first network node fordisplay of the first DIC, the instructions, when executed on aprocessor, implement a method comprising: sending, by the network node,a second DIC to a second network node for display of the second DIC;registering a mobile phone number of a particular user with the firstnetwork node, wherein the database includes mapping information mappingthe registered mobile phone number of the particular user to the firstDIC associated with the first network node; detecting an input from auser, identifying (i) a shared digital workspace, (ii) the registeredmobile phone number of the particular user and (iii) a second requestedDIC input by the user using a visual interface; determining that a firstmobile phone number match exists when the registered mobile phone numberof the particular user, as included in the detected input from the user,is mapped to the first DIC in the mapping information; and in dependenceupon the determination that the first mobile phone number match exists,starting a collaboration by sending data of the shared digital workspaceto the first network node via the smart dongle.
 22. The non-transitorycomputer readable storage medium of claim 21, wherein the detected inputfrom the user further identifies a first requested DIC input by the userusing the visual interface, wherein the method further comprisesdetermining that (i) a first match exists when the first requested DICidentified by the input from the user matches the first DIC sent to thefirst network node and (ii) a second match exists when the secondrequested DIC identified by the input from the user matches the secondDIC sent to the second network node, and wherein the collaboration isstarted in dependence upon the determination that the first and secondmatches exist.
 23. A digital collaborative workspace system, comprising:a first network node having a first communication module and a firstprocessor, the first network node comprising logic, executable by thefirst processor, to: receive, from a network node and by the firstcommunication module, a first display identification code (DIC); displaythe first DIC; receive, from the network node, data of a shared digitalworkspace in dependence upon the network node detecting an input from auser identifying (i) the shared digital workspace and (ii) a registeredmobile phone number of a particular user; and display the received dataof the shared digital workspace; a second network node having a secondcommunication module and a second processor, the second network nodecomprising logic, executable by the second processor, to: receive, fromthe network node and by the second communication module, a second DIC;display the second DIC; receive, from the network node, the data of theshared digital workspace in dependence upon the network node detectingan input from the user identifying (i) the shared digital workspace and(ii) a second requested DIC input by the user using a visual interface;and display the received data of the shared digital workspace; and thenetwork node having a communication module, a processor, and a databaseaccessible thereto, the database storing the shared digital workspace,the network node comprising logic, executable by the processor, to:register the mobile phone number of the particular user with the firstnetwork node, wherein the database includes mapping information mappingthe registered mobile phone number of the particular user to the firstDIC associated with the first network node; determine that a firstmobile phone number match exists when the registered mobile phone numberof the particular user, as included in the detected input from the user,is mapped to the first DIC in the mapping information; and in dependenceupon the determination that the first mobile phone number match exists,start a collaboration by sending data of the shared digital workspace tothe first network node.
 24. The digital collaborative workspace systemof claim 23, wherein the detected input from the user further identifiesa first requested DIC input by the user using the visual interface, andwherein the data of the shared digital workspace is received by both thefirst network node and the second network node in dependence upon thenetwork node determining that (i) a first match exists when the firstrequested DIC identified by the input from the user matches the firstDIC sent to the first network node and (ii) a second match exists whenthe second requested DIC identified by the input from the user matchesthe second DIC sent to the second network node.
 25. A digitalcollaborative workspace system, comprising: a smart dongle connected toa first network node, communicably connected to a network node, thesmart dongle including logic to provide a first display identificationcode (DIC) to the first network node for display of the first DIC; thefirst network node having a first processor, the first network nodecomprising logic, executable by the first processor, to: receive, fromthe smart dongle, the first DIC; display the first DIC; receive, fromthe network node via the smart dongle, data of a shared digitalworkspace in dependence upon the network node detecting an input from auser identifying (i) the shared digital workspace and (ii) a registeredmobile phone number of a particular user; and display the received dataof the shared digital workspace; a second network node having a secondprocessor, the second network node comprising logic, executable by thesecond processor, to: receive, from the network node, a second DIC;display the second DIC; receive, from the network node, the data of theshared digital workspace as a result of the network node detecting aninput from the user identifying (i) the shared digital workspace and(ii) a second requested DIC input by the user using a visual interface;and display the received data of the shared digital workspace; and thenetwork node having a communication module, a processor, and a databaseaccessible thereto, the database storing the shared digital workspace,the network node comprising logic, executable by the processor, to:register the mobile phone number of the particular user with the firstnetwork node, wherein the database includes mapping information mappingthe registered mobile phone number of the particular user to the firstDIC associated with the first network node; determine that a firstmobile phone number match exists when the registered mobile phone numberof the particular user, as included in the detected input from the user,is mapped to the first DIC in the mapping information; and in dependenceupon the determination that the first mobile phone number match exists,start a collaboration by sending data of the shared digital workspace tothe first network node via the smart dongle.
 26. The digitalcollaborative workspace system of claim 25, wherein the detected inputfrom the user further identifies a first requested DIC input by the userusing the visual interface, and wherein the data of the shared digitalworkspace is received by both the first network node via the smartdongle and the second network node, in dependence upon the network nodedetermining that (i) a first match exists when the first requested DICidentified by the input from the user matches the first DIC provided tothe first network node by the smart dongle and (ii) a second matchexists when the second requested DIC identified by the input from theuser matches the second DIC sent to the second network node.